The present disclosure generally relates to flash memories, and more specifically to mapping addresses of flash memories to other addresses.
Contemporary flash memories have a restrictive property that the ‘erase’ operation is expensive in terms such as time and affects large memory areas relative to elements such as bits or bytes. Therefore, to update even a single entry in a data array, one often has to copy the entire array to another location and update the entry in the copied array as if—virtually—the original array is updated and associate the new location with the address of the array as a mapped address of the array. Subsequently, the array in the original location might be erased such as for further use.
If each physical location can be mapped to one logical address only, then the memory management is quite straightforward, but the number of times that data can be rewritten is limited. For example, if one has two spare locations for each logical address, then the size of the spare array is twice as the original array and the original array address can be rewritten or updated only twice.
It is also noted that in such a manner it may occur that most of the spare memory remains unused up to the moment when no more modifications can be done for a required address, since, typically at least, the changes throughout the array are unpredictable.
Mapping regions of flash memories to substitutional or a logical addresses is known in the art as in, for example, http://web.stanford.edu/˜ouster/cgi-bin/cs140-winter13/lecture.php?topic=flash.
Generally. or in various cases, mapping an original physical address to a virtual or a substitutional one entails that the original address should be retained and maintained to keep track of the mapping, at the expense of storage capacity.